package customer.design.dispatcher.dispatchermode.real.biz;

import java.util.Map;

/**
 * 第二步  根据注解匹配到的实现类区实现不同的方法
 * 通过抽象类定义规则
 * 1、根据实现类 实现的 buildBean 构建各自的Bean对象和数据信息
 * 2、根据各自的的实现类
 * @author ldanniel
 * @param <T>
 */
public abstract class AbstractBiz <T>{


    public  Object execute(Map<String,Object> paramMap){
        T t = buildBean(paramMap);
       return callBiz(t);
    }
    /**
     * 构建bean并注入属性
     * @param paramMap 属性值
     * @return bean对象
     */
    public abstract T buildBean(Map<String,Object> paramMap);

    /**
     * 执行具体的业务逻辑
     * @param t bean对象
     * @return 结果
     */
    public abstract Object callBiz(T t);
}
